/*
 * Classe Inicial do Programa
 *                          - Questiona o utilizador sobre qual a estatística/lista a executar
 * 							- Cria as pastas que irão conter os ficheiros das estatísticas e listas (caso não existam)
 * 							- Invoca a classe da estatística/lista seleccionada pelo utilizador
 *
 *@Author: Fábio Miguel Vitória Carreto - 5618 - Engenharia Informática - Diurno
 *@Version: 03/07/2011
 * 
 * 
 * */


using System;
using System.Data;
using Mono.Data.SqliteClient;
using System.IO;
using System.Text;

 
public partial class ClassMain
{
	public static void Main(string[] args)
	{
		
		//Inicialmente cria as pastas que irão conter os ficheiros de texto
		//respectivos a cada estatística/lista, caso estas não existam.
		
		//As pastas são criadas na mesma directoria do executável
		string directoryStats = Directory.GetCurrentDirectory() + @"/Estatísticas";
		
		if(!Directory.Exists(directoryStats))
		{
			Directory.CreateDirectory(directoryStats);
		}
		
		string directoryLists = Directory.GetCurrentDirectory() + @"/Listas";
		
		if(!Directory.Exists(directoryLists))
		{
			Directory.CreateDirectory(directoryLists);
		}
		
		//Mostra qual o sistema operativo em que o programa está a ser executado
		Console.WriteLine("Sistema Operativo: " + Environment.OSVersion.ToString());
		//Mostra ao utilizador as várias opções
		Console.WriteLine(
		    "************************* Bem Vindo ao Programa Rebides **********************\n" +
			"*                          ------- Estatísticas -------                      *\n" +
			"* Número de Docentes Por Ano:                                                *\n" +
			"* 1 - No Ensino Superior                                                     *\n" +
			"* 2 - Num estabelecimento                                                    *\n" +
			"* 3 - Com determinado grau académico                                         *\n" +
			"* 4 - Com determinado grau académico num estabelecimento                     *\n" +
			"* 5 - Doutorados ou com graus equivalentes (3º Ciclo), num estabelecimento   *\n" +
			"* 6 - Que migraram de um estabelecimento para outro                          *\n" +
			"* 7 - Num estabelecimento que subiram de categoria                           *\n" +
			"*                                                                            *\n" +
			"*                              ------- Listas -------                        *\n" +
			"* Em cada Ano:                                                               *\n" +
			"* 8 - Docentes doutorados e grau equivalente(3º ciclo) num estabelecimento   *\n" +
			"* 9 - Docentes que mudaram de estabelecimento                                *\n" +
			"* 10 - Estabelecimentos                                                      *\n" +
			"* 11 - Titulares de determinado grau académico                               *\n" +
			"* 12 - Docentes que abandonaram determinado estabelecimento                  *\n" +
			"* 13 - Novos docentes em determinado estabelecimento                         *\n" +
			"******************************************************************************\n" +
			"\n\nPOR FAVOR INSIRA O NÚMERO DA ESTATÍSTICA/LISTA QUE PRETENDE EXECTUAR \n");
		
		//Obtém a resposta do utilizador
		string line = Console.ReadLine();
		int option = int.Parse(line);
		
		//Consoante a opção seleccionada assim 
		//será a classe chamada e os respectivos parâmetros
		//necessários pedidos ao utilizador
		switch (option)
		{
		    case 1://Estatística 1
				Console.WriteLine("Estatística 1 a ser Executada, Por Favor Aguarde\n");
				StatOne statOne = new StatOne();
		        break;
		    case 2://Estatística 2
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string estabelecimento = Console.ReadLine();
				Console.WriteLine("Estatística 2 a ser Executada, Por Favor Aguarde\n");
				StatTwo statTwo = new StatTwo(estabelecimento);
		        break;
			case 3://Estatística 3
		        Console.WriteLine("Qual o Grau Académico pretendido?");
				string grau = Console.ReadLine();
				Console.WriteLine("Estatística 3 a ser Executada, Por Favor Aguarde\n");
				StatThree statThree = new StatThree(grau);
		        break;
			case 4://Estatística 4
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string estab = Console.ReadLine();
				Console.WriteLine("Qual o Grau Académico pretendido?");
				string grauAcad = Console.ReadLine();
				Console.WriteLine("Estatística 4 a ser Executada, Por Favor Aguarde\n");
				StatFour statFour = new StatFour(estab, grauAcad);
		        break;
			case 5://Estatística 5
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string est = Console.ReadLine();
				Console.WriteLine("Estatística 5 a ser Executada, Por Favor Aguarde\n");
				StatFive statFive = new StatFive(est);
		        break;
			case 6://Estatística 6
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string e = Console.ReadLine();
				Console.WriteLine("Estatística 6 a ser Executada, Por Favor Aguarde\n" +
					"Devido à complexidade da mesma, esta poderá demorar um pouco mais que as restantes!");
				StatSix statSix = new StatSix(e);
		        break;
			case 7://Estatística 7
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string es = Console.ReadLine();
				Console.WriteLine("Estatística 7 a ser Executada, Por Favor Aguarde\n");
				StatSeven statSeven = new StatSeven(es);
		        break;
			case 8://Lista 1
		        Console.WriteLine("Qual o Estabelecimento pretendido?");
				string stab = Console.ReadLine();
				Console.WriteLine("Lista 1 a ser Gerada, Por Favor Aguarde\n");
				ListOne listOne = new ListOne(stab);
		        break;
			case 9://Lista 2
		        Console.WriteLine("Qual o Estabelecimento de origem pretendido?");
				string resp = Console.ReadLine();
				Console.WriteLine("Lista 2 a ser gerada, Por Favor Aguarde\n");
				ListTwo listTwo = new ListTwo(resp);
		        break;
			case 10://Lista 3
				Console.WriteLine("Lista N.º 3 a ser gerada, Por Favor Aguarde\n");
				ListThree listThree = new ListThree();
		        break;
			case 11://Lista 4
		        Console.WriteLine("Qual o Grau Académico pretendido?");
				string ga = Console.ReadLine();
				Console.WriteLine("Lista 4 a ser Gerada, Por Favor Aguarde\n");
				ListFour listFour = new ListFour(ga);
		        break;
			case 12://Lista 5
		        Console.WriteLine("Qual o Estabelecimento Pretendido?");
				string r = Console.ReadLine();
				Console.WriteLine("Lista 5 a ser gerada, Por Favor Aguarde\n");
				ListFive listFive = new ListFive(r);
		        break;
			case 13://Lista 6
		        Console.WriteLine("Qual o Estabelecimento Pretendido?");
				string f = Console.ReadLine();
				Console.WriteLine("Lista 6 a ser gerada, Por Favor Aguarde\n");
				ListSix listSix = new ListSix(f);
		        break;
		    default://Lista 7
		        Console.WriteLine("Número Não Correcto");
		        break;
		}
		
		
		Console.ReadKey();
	
	}
}